home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / text / html / InlineView.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  2.7 KB  |  92 lines

  1. package javax.swing.text.html;
  2.  
  3. import java.awt.FontMetrics;
  4. import java.awt.Shape;
  5. import java.text.BreakIterator;
  6. import javax.swing.event.DocumentEvent;
  7. import javax.swing.text.AttributeSet;
  8. import javax.swing.text.BadLocationException;
  9. import javax.swing.text.Document;
  10. import javax.swing.text.Element;
  11. import javax.swing.text.LabelView;
  12. import javax.swing.text.View;
  13. import javax.swing.text.ViewFactory;
  14. import javax.swing.text.html.CSS.Attribute;
  15.  
  16. public class InlineView extends LabelView {
  17.    AttributeSet attr;
  18.  
  19.    public InlineView(Element var1) {
  20.       super(var1);
  21.       StyleSheet var2 = this.getStyleSheet();
  22.       this.attr = var2.getViewAttributes(this);
  23.    }
  24.  
  25.    public void changedUpdate(DocumentEvent var1, Shape var2, ViewFactory var3) {
  26.       super.changedUpdate(var1, var2, var3);
  27.       StyleSheet var4 = this.getStyleSheet();
  28.       this.attr = var4.getViewAttributes(this);
  29.       ((View)this).preferenceChanged((View)null, true, true);
  30.    }
  31.  
  32.    public AttributeSet getAttributes() {
  33.       return this.attr;
  34.    }
  35.  
  36.    float getLongestWordSpan() {
  37.       float var1 = 0.0F;
  38.  
  39.       try {
  40.          Document var2 = ((View)this).getDocument();
  41.          int var3 = ((View)this).getStartOffset();
  42.          int var4 = ((View)this).getEndOffset();
  43.          String var5 = var2.getText(var3, var4 - var3);
  44.          int var6 = var3;
  45.          int var7 = var3;
  46.          if (var5 != null && var5.length() > 0) {
  47.             BreakIterator var8 = BreakIterator.getWordInstance();
  48.             var8.setText(var5);
  49.             int var9 = var8.first();
  50.  
  51.             for(int var10 = var8.next(); var10 != -1; var10 = var8.next()) {
  52.                if (var10 - var9 > var7 - var6) {
  53.                   var6 = var9;
  54.                   var7 = var10;
  55.                }
  56.  
  57.                var9 = var10;
  58.             }
  59.          }
  60.  
  61.          if (var7 - var6 > 0) {
  62.             FontMetrics var12 = ((LabelView)this).getFontMetrics();
  63.             String var13 = var5.substring(var6, var7);
  64.             var1 = (float)var12.stringWidth(var13);
  65.          }
  66.       } catch (BadLocationException var11) {
  67.       }
  68.  
  69.       return var1;
  70.    }
  71.  
  72.    protected StyleSheet getStyleSheet() {
  73.       HTMLDocument var1 = (HTMLDocument)((View)this).getDocument();
  74.       return var1.getStyleSheet();
  75.    }
  76.  
  77.    protected void setPropertiesFromAttributes() {
  78.       super.setPropertiesFromAttributes();
  79.       AttributeSet var1 = this.getAttributes();
  80.       Object var2 = var1.getAttribute(Attribute.TEXT_DECORATION);
  81.       boolean var3 = var2 != null ? var2.toString().indexOf("underline") >= 0 : false;
  82.       ((LabelView)this).setUnderline(var3);
  83.       boolean var4 = var2 != null ? var2.toString().indexOf("line-through") >= 0 : false;
  84.       ((LabelView)this).setStrikeThrough(var4);
  85.       Object var5 = var1.getAttribute(Attribute.VERTICAL_ALIGN);
  86.       var4 = var5 != null ? var5.toString().indexOf("sup") >= 0 : false;
  87.       ((LabelView)this).setSuperscript(var4);
  88.       var4 = var5 != null ? var5.toString().indexOf("sub") >= 0 : false;
  89.       ((LabelView)this).setSubscript(var4);
  90.    }
  91. }
  92.